// pages/goods_detail/index.js
import fetch from '../../request/index'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 商品详情数据
    goodsObj: {}
  },
  // 商品对象
  GoodsInfo: {},
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getGoodsDetail(options.goods_id)
  },
  // 获取商品详情数据
  async getGoodsDetail(goods_id) {
    const res = await fetch({ url: '/goods/detail', data: { goods_id } })
    this.GoodsInfo = res
    this.setData({
      goodsObj: {
        goods_name: res.goods_name,
        goods_price: res.goods_price,
        goods_introduce: res.goods_introduce,
        pics: res.pics
      }
    })
  },
  // 轮播图大图预览
  handlePrevewImage(e) {
    const urls = this.GoodsInfo.pics.map((v) => v.pics_mid)
    const current = e.currentTarget.dataset.url
    wx.previewImage({
      current, // 当前显示图片的http链接
      urls // 需要预览的图片http链接列表
    })
  },
  // 添加购物车
  addCart() {
    // 获取缓存中的购物车数据
    let cart = wx.getStorageSync('cart') || []
    // 判断商品对象是否已存在购物车数组中
    let index = cart.findIndex((v) => v.goods_id === this.GoodsInfo.goods_id)
    if (index === -1) {
      // 初次添加
      // 数量为1
      this.GoodsInfo.num = 1
      // 选中状态默认为选中
      this.GoodsInfo.checked = true
      // 添加到购物车数据中
      cart.push(this.GoodsInfo)
    } else {
      // 已添加过，直接增加商品数量
      cart[index].num++
    }
    // 把购物车数据更新到缓存中
    wx.setStorageSync('cart', cart)
    // 提示
    wx.showToast({
      title: '添加成功',
      // 防抖
      mask: true
    })
  }
})
